package com.example.handpose_front.utils.OKHttpUtil;

import java.io.File;
import java.io.IOException;
import java.util.Map;
import okhttp3.*;

public class HttpVideo {

    public static String postFileSyncRequest(String url, Map<String, String> params, String module, String action, File file) {
        OkHttpClient client = new OkHttpClient();

        // 创建 MultipartBody 来上传文件
        MultipartBody.Builder bodyBuilder = new MultipartBody.Builder().setType(MultipartBody.FORM);

        // 添加文本参数
        for (Map.Entry<String, String> entry : params.entrySet()) {
            bodyBuilder.addFormDataPart(entry.getKey(), entry.getValue());
        }

        // 使用 File 和 MediaType 创建 RequestBody
        // 在 OkHttp 3.x 中，RequestBody.create() 用法是这样的
        RequestBody fileBody = RequestBody.create(MediaType.parse("video/mp4"), file);

        // 添加视频文件
        bodyBuilder.addFormDataPart("file", file.getName(), fileBody);

        // 构建请求体
        RequestBody requestBody = bodyBuilder.build();

        // 构建请求
        Request request = new Request.Builder()
                .url(url + "/" + module + "/" + action)  // 填写上传的 URL 和路径
                .post(requestBody)
                .build();

        try {
            // 执行同步请求并获取响应
            Response response = client.newCall(request).execute();
            return response.body().string();  // 返回响应体内容
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }
}
